package fr.efrei.musicpliz.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Session;

import fr.efrei.musicpliz.dao.MessageDao;
import fr.efrei.musicpliz.dto.CompteDto;
import fr.efrei.musicpliz.entity.Message;
import fr.efrei.musicpliz.enums.MessageStatus;
import fr.efrei.musicpliz.service.MessageService;


public class MessageServiceImpl implements MessageService {

	private MessageDao messageDao;

	@Override
	public Message saveMessage(Message message) {
		return messageDao.save(message);	
	}

	public void setMessageDao(MessageDao messageDao) {
		this.messageDao = messageDao;
	}

	@Override
	public List<Message> retrieveReceivedMessages(CompteDto compte) {
		return messageDao.getReceived(compte);
	}

	@Override
	public List<Message> retrieveSentMessages(CompteDto compte) {
		return messageDao.getSent(compte);
	}
	
	@Override
	public int getNewReceivedCount(CompteDto compte){
		return messageDao.getNewReceivedCount(compte);
	}

	@Override
	public void createMessages(Message message){
		message.setCompte(message.getDestinataire());
		messageDao.save(message);
		message.setCompte(message.getExpediteur());
		message.setStatus(MessageStatus.READ);
		messageDao.save(message);
	}
	
	@Override
	public void delete(Message message){
		messageDao.delete(message);
	}
}
